1. Field of the Invention
The present invention relates generally to the field of computer network protocol translators. In particular, the present invention concerns an improved method for interprocess communication in a computer operating system that is executing in a computer network protocol translator consisting of at least a central processing unit and associated memory. The present invention further concerns an improved method of interprocess communication and data exchange for use in network protocol translators.
2. Description of the Prior Art
In the field of computer networks, there are a plurality of different types of networks used to connect individual computers together so that they may exchange data. There has always been a need to be able to allow computers which are connected on separate, disparate types of networks to communicate and exchange data. Communication between computers on separate disparate networks is accomplished by network protocol translators, which translate between the differing hardware circuitry and software protocols of the disparate networks.
A software operating system that is executing on a computer network protocol translator may be thought of as a resource allocator and manager. The main functions of such a software operating system are:
(a) to provide a mechanism for the creation and deletion of processes; PA0 (b) to provide CPU scheduling, memory management and device management for these processes; PA0 (c) to provide synchronization tools, so that the processes can coordinate their actions; and PA0 (d) to provide communication tools, so that the processes can exchange information with each other.
Therefore, the system's software may be viewed as a set of software processes whose actions are coordinated and facilitated by the operating system.
In order to facilitate interprocess communication and data exchange within the operating system, many modern computer systems use some form of a messaging system. The function of a messaging system is to allow software processes to communicate and to exchange data with each other. In one implementation of prior art messaging systems, an interprocess communication facility basically provides two operations, SEND (MESSAGE) and RECEIVE (MESSAGE). For example, if two processes, (A) and (B), want to communicate, they must send and receive messages from each other. That is, process (A) must generate and send a message that is received by process (B). Process (B) then has to acknowledge the receipt of the message by generating and sending a message back to process (B).
The above example illustrates one of the limitations of the prior art messaging systems. That is, in order for processes to communicate, at least two messages must be generated and exchanged between the processes. This type of "query-response" protocol requires that the system generate and keep track of which messages have and have not been acknowledged. Keeping track of acknowledgements through the use of mechanisms such as transaction identification numbers requires additional processing overhead and software complexity.
Another implementation of the prior art message passing system uses pre-emptive or interrupt-driven software In these message passing systems, a scheduling mechanism is used to apportion central processing unit time to different processes in order to use the central processing unit most efficiently. Adding this type of pre-emptive scheduling to an operating system adds additional overhead and thus reduces the achievable system performance.
Another characteristic of some prior art message passing systems is that the messages are generally copied from one memory area to another as control of the message is transferred from the sending software process to the receiving software process. This type of messaging system uses additional memory and also limits the system performance because of the time required to copy a complete message from one memory area to another.
In view of the foregoing limitations, an object of the present invention is to eliminate the need to generate a return acknowledgement message in response to a transmitted message in a computer network protocol translator.
Another object of the present invention is to eliminate the need to cop messages from one data area to another in a computer network protocol translator.
Another object of the invention is to be able to return the status of the message processing and responses to software processes that request status and response in a computer network protocol translator, without having to generate and send a response message.
A further object of the present invention is to improve a computer network protocol translator system s performance by eliminating the additional system overhead which would be required by using a pre-emptive scheduling technique or a "query-response" messaging protocol.